"""
XGBoost 都是二叉树 CART   每一次放回抽样  更多的抽取之前预测错误的数据
大数据集上 先调其他参数 再调树的数目 可以调方差偏差来选数目 300以下为佳 除非几十万的数据
subsample 抽样比例 [0,1] 默认1
eta: 新加一棵树的学习率 [0,1] 默认0.3
"""
from xgboost import XGBRegressor
from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import cross_val_score

x, y = fetch_california_housing(return_X_y=True)

xgb = XGBRegressor(n_estimators=175, random_state=22)
loss = - cross_val_score(xgb, x, y, cv=5, scoring='neg_mean_squared_error')

print(y.min(), y.max())
print('MSE:', loss.mean())